Identification of concepts and associated processing

ABSTRACT

Relevant content from target content may be identified. The relevant content may be matched against a concept graph. The concept graph may include one or more concepts and associations between the concepts. Concepts may be determined based on the matching. The relevant content may be augmented with indicators to indicate the determined concepts. The determined concepts may be searched in one or more search spaces to obtain search results. Access may be granted to information indicated by the search results.

BACKGROUND

When a user accesses the contents of target content such as a document,the user may notice concepts such as phrases (i.e., one or more words)in the document which relate to a topic of interest to the user. Theuser may then copy these phrases and perform a search utilizing thecopied phrases as search terms. The above process is inefficient becausethe user has to manually perform the searches and the user may not knowwhether the phrases found on the webpage are optimal search terms.Furthermore, the above process does not provide the user with a seamlesscomputer experience since the user has to either navigate away from thedocument at hand or open a new browser window to perform additionalsearches.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a conventional exemplary document.

FIG. 2 illustrates an exemplary document displayed to a user accordingto an embodiment.

FIG. 3 shows an exemplary architecture in an embodiment.

FIG. 3A shows an exemplary architecture in an embodiment.

FIG. 4 illustrates processing of a document according to an embodiment.

FIG. 5 illustrates an exemplary reference according to an embodiment.

FIG. 6 illustrates an exemplary reference according to an embodiment.

FIG. 7 illustrates a modified document according to an embodiment.

FIG. 8 illustrates a modified document according to an embodiment.

FIG. 9 illustrates an exemplary data source search interface accordingto an embodiment.

FIG. 10 shows an exemplary architecture in an embodiment.

FIG. 11 illustrates a modified document indicating phrases of interestand processes associated with the phrases according to an embodiment.

FIG. 12 shows an exemplary architecture in an embodiment.

FIG. 13 shows an exemplary architecture in an embodiment.

FIG. 14 illustrates a graphical user interface displaying a videoaccording to an embodiment.

FIG. 15 illustrates a process according to an embodiment.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

In accordance with example embodiments of the present invention, systemsand methods are disclosed which identify phrases and providefunctionality associated with the identified phrases. In an embodiment,relevant content from target content may be identified. The relevantcontent may be matched against a concept graph. The concept graph mayinclude one or more concepts and associations between the concepts.Concepts may be determined based on the matching. The relevant contentmay be augmented with indicators to indicate the determined concepts.The determined concepts may be searched in one or more search spaces toobtain search results. Access may be granted to information indicated bythe search results.

In an embodiment, a request may be sent. The request may include a textsegment of a document. A response may be received. The response mayindicate phrases of interest in the text segment based on a reference.The reference may include one or more phrases and associations betweenthe phrases. The document may be displayed with visual propertiesidentifying the phrases of interest. In response to user inputcorresponding to a phrase of interest, another request may be sent toretrieve information associated with the phrase of interest from a datasource.

In an embodiment, a request may be sent. The request may include a textsegment of a document. A response may be received. The response mayindicate phrases of interest in the text segment based on a reference.The reference may include one or more phrases and associations betweenthe phrases. The document may be displayed with visual propertiesidentifying the phrases of interest. In response to a user inputcorresponding to a phrase of interest, an interface with an optimalphrase to replace the phrase of interest may be displayed. In responseto another user input, the phrase of interest may be replaced with theoptimal phrase.

In an embodiment, a request from a user device may be received. Therequest may include a text segment of a document. Phrases of interestmay be determined in the text segment based on a reference. Thereference may include one or more phrases and associations between thephrases. The phrases of interest may be indicated in a response to theuser device. The response may be transmitted to the user device. Theresponse may enable the user device to display the document, visuallyidentify the phrases of interest indicated in the response within thedocument, and in response to user input corresponding to a phrase ofinterest within the document, send a request to retrieve informationassociated with the phrase of interest from a data source.

In an embodiment, a request may be received from a user device. Therequest may be generated in response to user input associated with anindicated phrase of interest within a displayed document. The phrase ofinterest may be determined based a reference. The reference may includeone or more phrases and associations between the phrases. The requestmay include the phrase of interest. Search results associated with thephrase of interest may be retrieved. A response may be transmitted tothe user device with the search results. The response may enable theuser device to display the search results.

In an embodiment, a request may be received from a user device for adocument. The document may be retrieved. A text segment of the documentmay be identified. Phrases of interest in the text segment may bedetermined based on a reference. The reference may include one or morephrases and associations between the phrases. The phrases of interestmay be indicated in a response to the user device. The response may betransmitted to the user device. The response may enable the user deviceto display the document, visually identify the phrases of interestindicated in the response within the document, and in response to userinput corresponding to a phrase of interest within the document, displaysearch results corresponding to the phrase of interest.

FIG. 1 illustrates a conventional exemplary document 100 displayed to auser via a user device such as a computer. Document 100 may be a webpagedocument. The webpage 100 may include text 101 related to one or moretopics of interest to the user. While reading the text 101, the user maywant to explore one or more phrases in the text 101. For example, theuser may want more information about the phrase 102, “AUVs.” Therefore,using conventional methods, the user may navigate away from the currentwebpage or open a new browser window and use a search engine to manuallyperform a search using the search term, “AUVs.” The above process isinefficient because the user has to manually perform the searches andthe user may not know whether the phrases found on the webpage areoptimal search terms. Furthermore, the above process does not providethe user with a seamless computer experience since the user has toeither navigate away from the document at hand or open a new browserwindow to perform additional searches.

In accordance with an example embodiment of the present invention, auser at a user device (e.g., a device having a processor, a display, andan input device) may request a webpage document. FIG. 2 illustrates anexemplary document 200 which may be displayed to a user in response tothe request. The webpage 200 may include text 201 related to one or moretopics of interest to the user. One or more phrases such as 202, 204,and 206, in the text 201 may include visual properties that distinguishthem from the rest of the content in text 201. For example, phrases 202,204, and 206 may be highlighted or italicized. The visual properties mayconvey to the user that one or more user actions may be performed onphrases 202, 204, and 206, and that the one or more user actions maytrigger one or more functions. For example, hovering a cursor over thephrase 202, “AUVs,” may trigger the display of a dialog box 210. Dialogbox 210 may present information associated with AUVs such as results 216from searches conducted in one or more data sources which storeinformation pertaining to AUVs; links 214 to the data sources may alsobe displayed to in dialog box 210. Thus, multiple data sources aresearched at once. In an embodiment, the information stored in the datasources may be curated by the owner of the data. Furthermore, the userdoes not need to manually perform a search by navigating away from thewebpage 200 or opening a new browser window. In addition, the searchesconducted in data sources may return optimized results. For instance,instead of using the acronym, “AUVs,” to conduct the search, theexpanded search term, “autonomous underwater vehicle,” 212 (i.e., anoptimal phrase) may be used. Therefore the user may receive searchresults which are more relevant to the topic of interest.

In an embodiment, user input such as clicking on any one of the links214 to data sources—data source X, data source Y, or data source Z—maydisplay the search results from the respective data source in dialog box210. This further reduces the need for the user to manually performsearches on multiple data sources to find information relevant to AUVs.In an embodiment, additional results may be displayed to the user on anew browser window in response to user input such as double-clicking onlinks 214 to one of the data sources. In an alternate embodiment, theadditional search results from data source X may be displayed to theuser on a new browser window in response to user input such as clickingon link 218 which may include a description such as “view more searchresults from data source X.”

FIG. 3 shows an exemplary architecture 300 in an embodiment of thepresent invention. User device 302 may send a request 312 for a documentsuch as a webpage to a webserver 304 via, e.g., a browser. In response,the webserver 304 may send the requested webpage 314 to the user device302. Prior to displaying the requested webpage or, in parallel, whiledisplaying all or a portion of the webpage, the user device 302 may thensend all or a selected portion of the webpage (e.g., a text segment fromthe webpage) 316 to an application server 306. In response, theapplication server 306 may return information to modify/augment thewebpage 318 to the user device 302. The user device 302 may modify thewebpage based on the information sent from server 306 and display themodified webpage. In another embodiment, the user device may display thewebpage prior to receiving the information to modify/augment thewebpage, and then replace the displayed webpage with the modifiedwebpage. In one example embodiment, the information to modify/augmentthe webpage 318 may be an entire webpage replacement which includesmodified information.

The information sent from server 306 to user device 302 may indicatephrases of interest in the webpage. The phrases of interest may bedetermined by the server 306 as explained in the discussion pertainingto FIG. 4 below. In a further embodiment, the information sent fromserver 306 may include additional information pertaining to the phrasesof interest such as search results from one or more data sources asexplained in the discussion pertaining to FIG. 10. The information sentfrom servers 304 and/or 306 may include any programming code and/ormarkup language necessary to modify the webpage including but notlimited to JavaScript, HyperText Markup Language (HTML), ExtensibleMarkup Language (XML), Asynchronous JavaScript (Ajax), jQuery, JavaServer Pages (JSP), Apache Velocity, FreeMarker, Java HTML (JHTML),Thymeleaf, Adobe ColdFusion, and/or any code which may be processed byan application or application plug-in installed on the user device 302.

In an embodiment, the information sent from server 306 to user device302 may be processed directly by an application displaying/processingthe webpage on user device 302 such as a web browser. In anotherembodiment the information sent from server 306 to user device 302 maybe processed by a plug-in of an application installed on the user device302 such as a plug-in for a web browser.

In an illustrative example, a web browser may be running on user device302. A user may request 312 a webpage A from server 304 using the webbrowser. The server 304 may return 314 the requested webpage A alongwith embedded Javascript in the webpage A. Upon receiving the response314 from server 304, the web browser on user device 302 may load thewebpage and the embedded Javascript may be executed. The embeddedJavascript may include instructions to 1) select all or a portion of thecontent on webpage A and 2) send a request to server 306 with theselected content for identifying phrases of interest in the content. Asa result, the web browser may send a request with the selected content316 to server 306. In response, the server 306 may process the contentfrom webpage A to identify the phrases of interest based on a reference(as explained in the discussion pertaining to FIG. 4 below). The server306 may send a response 318 to the web browser on user device 302indicating the phrases of interest. HTML tags may be used to identifythe phrases of interest in the response 318. The web browser on userdevice 302 may display the webpage A with the phrases of interestvisually identified to the user (as explained in the discussionpertaining to FIG. 7 below). The Javascript, originally sent by server304, may include additional instructions to send another request to aserver 306 for retrieving information from one or more data sourcespertaining to a visually identified phrase of interest on webpage A inresponse to user input such as hovering a cursor over the phrase ofinterest. Therefore, in response to hovering a cursor over the phrase ofinterest, a request may be sent to server 306 with the phrase ofinterest. The server 306 may retrieve information pertaining to thephrase of interest indicated in the request from one or more datasources and/or a cache and may return the search results to the webbrowser on user device 302 (as explained in the discussion pertaining toFIG. 10 below). Upon receiving the response from server 306, theJavascript may instruct the web browser to display the search results inan interface such as a dialog box (as explained in the discussionpertaining to FIG. 8 below).

In another illustrative example, a web browser may be running on userdevice 302. A user may request 312 a webpage A from server 304 using theweb browser. The server 304 may return 314 the requested webpage A alongwith embedded Javascript in the webpage A. Upon receiving the response314 from server 304, the web browser on user device 302 may load thewebpage and the embedded Javascript may be executed. The embeddedJavascript may include instructions to 1) select all or a portion of thecontent on webpage A and 2) send a request to server 306 with theselected content for identifying phrases of interest in the content andfor retrieving information pertaining to the identified phrases ofinterest. As a result, the web browser may send a request with theselected content 316 to server 306. In response, the server 306 mayprocess the content from webpage A to 1) identify the phrases ofinterest based on a reference (as explained in the discussion pertainingto FIG. 4 below) and 2) retrieve information pertaining to theidentified phrases of interest from one or more data sources and/or acache (as explained in the discussion pertaining to FIG. 10 below). Theserver 306 may send a response 318 to the web browser on user device 302including the phrases of interest and search results pertaining to thephrases of interest. HTML tags may be used to identify the phrases ofinterest and the search results in the response 318. The web browser onuser device 302 may display the webpage A with the phrases of interestvisually identified to the user (as explained in the discussionpertaining to FIG. 7 below). The Javascript, originally sent by server304, may include additional instructions to display the search resultscorresponding to a visually identified phrase of interest on webpage Ain response to user input such as hovering a cursor over the phrase ofinterest. Therefore, in response to hovering a cursor over the phrase ofinterest, the search results corresponding to the phrase of interest maybe displayed in an interface such as a dialog box (as explained in thediscussion pertaining to FIG. 8 below).

In another illustrative example, a web browser may be running on userdevice 302. The web browser may include an installed plug-in to processwebpages. A user may request 312 a webpage A from server 304 using theweb browser. The server 304 may return 314 the requested webpage A. Uponreceiving the response 314 from server 304, the web browser on userdevice 302 may load the webpage and the plug-in may execute a set ofinstructions. The instructions may include information to 1) select allor a portion of the content on webpage A and 2) send a request to server306 with the selected content for identifying phrases of interest in thecontent. As a result, the web browser may send a request with theselected content 316 to server 306. In response, the server 306 mayprocess the content from webpage A to identify the phrases of interestbased on a reference (as explained in the discussion pertaining to FIG.4 below). The server 306 may send a response 318 to the web browser onuser device 302 indicating the phrases of interest. HTML tags may beused to identify the phrases of interest in the response 318. The webbrowser on user device 302 may display the webpage A with the phrases ofinterest visually identified to the user (as explained in the discussionpertaining to FIG. 7 below). The web browser plug-in may executeadditional instructions to send another request to the server 306 forretrieving information from one or more data sources pertaining to avisually identified phrase of interest on webpage A in response to userinput such as hovering a cursor over the phrase of interest. Therefore,in response to hovering a cursor over the phrase of interest, a requestmay be sent to server 306 with the phrase of interest. The server 306may retrieve information pertaining to the phrase of interest indicatedin the request from one or more data sources and/or a cache and mayreturn the search results to the web browser on user device 302 (asexplained in the discussion pertaining to FIG. 10 below). Upon receivingthe response from server 306, the web browser plug-in may instruct theweb browser to display the search results in an interface such as adialog box (as explained in the discussion pertaining to FIG. 8 below).

In another illustrative example, a web browser may be running on userdevice 302. The web browser may include an installed plug-in to processwebpages. A user may request 312 a webpage A from server 304 using theweb browser. The server 304 may return 314 the requested webpage A. Uponreceiving the response 314 from server 304, the web browser on userdevice 302 may load the webpage and the plug-in may execute a set ofinstructions. The instructions may include information to 1) select allor a portion of the content on webpage A and 2) send a request to server306 with the selected content for identifying phrases of interest in thecontent and for retrieving information pertaining to the identifiedphrases of interest. As a result, the web browser may send a requestwith the selected content 316 to server 306. In response, the server 306may process the content from webpage A to 1) identify the phrases ofinterest based on a reference (as explained in the discussion pertainingto FIG. 4 below) and 2) retrieve information pertaining to theidentified phrases of interest from one or more data sources and/or acache (as explained in the discussion pertaining to FIG. 10 below). Theserver 306 may send a response 318 to the web browser on user device 302including the phrases of interest and search results pertaining to thephrases of interest. HTML tags may be used to identify the phrases ofinterest and the search results in the response 318. The web browser onuser device 302 may display the webpage A with the phrases of interestvisually identified to the user (as explained in the discussionpertaining to FIG. 7 below). The plug-in may execute additionalinstructions to display the search results corresponding to a visuallyidentified phrase of interest on webpage A in response to user inputsuch as hovering a cursor over the phrase of interest. Therefore, inresponse to hovering a cursor over the phrase of interest, the searchresults corresponding to the phrase of interest may be displayed in aninterface such as a dialog box (as explained in the discussionpertaining to FIG. 8 below).

Although servers 304 and 306 are shown separately for illustrationpurposes, in other embodiments, the functions performed by servers 304and 306 may be performed by a single server. In an embodiment, the userdevice 302 may send a single request to a server and may receive themodified version of the webpage without sending additional requests.

FIG. 3A shows an exemplary architecture 320 in an embodiment of thepresent invention. User device 322 may send a request for a documentsuch as a webpage to a webserver 326. In response, the webserver 326 maysend the requested webpage to the user device 322 along with informationidentifying phrases of interest in all or a selected portion of thewebpage. The user device 322 may display the webpage with visualidentifications identifying the phrases of interest based on theinformation sent from server 326. In a further embodiment, theinformation sent from server 326 may additionally include search resultsassociated with the identified phrases of interest retrieved from one ormore data sources and/or a cache (as explained in the discussionpertaining to FIG. 10 below). The search results corresponding to thephrases of interest may be displayed by the user device 322 in aninterface such as a dialog box (as explained in the discussionpertaining to FIG. 8 below).

In an illustrative example, a web browser may be running on user device322. A user may request a webpage A from server 326 using the webbrowser. The server 326 may retrieve the requested webpage A anddetermine phrases of interest in all or a portion of webpage A (asexplained in the discussion pertaining to FIG. 4 below). In an alternateembodiment, the phrases of interest in all or a portion of webpage A mayhave been determined in advance prior to receiving the request from theweb browser. Specifically, at the point in time when webpage A is storedon server 326, the phrases of interest may be determined and HTML tagsidentifying the phrases of interest may be stored within webpage A. Theserver 326 may then return the requested webpage A along with HTML tagsidentifying the phrases of interest in webpage A to the web browser onuser device 322. The web browser on user device 322 may display thewebpage A with the phrases of interest visually identified to the user(as explained in the discussion pertaining to FIG. 7 below). In anembodiment, the webpage A sent by server 326 may additionally includeJavascript instructions to send another request to a server 326 forretrieving information from one or more data sources pertaining to avisually identified phrase of interest on webpage A in response to userinput such as hovering a cursor over the phrase of interest. Therefore,in response to hovering a cursor over the phrase of interest, a requestmay be sent to server 326 with the phrase of interest. The server 326may retrieve information pertaining to the phrase of interest indicatedin the request from one or more data sources and/or a cache and mayreturn the search results to the web browser on user device 322 (asexplained in the discussion pertaining to FIG. 10 below). Upon receivingthe response from server 326, the Javascript may instruct the webbrowser to display the search results in an interface such as a dialogbox (as explained in the discussion pertaining to FIG. 8 below). In analternate embodiment, the Javascript may not be sent by the server 326but a set of instructions may be generated/executed by the web browser'splug-in as explained previously in the discussion pertaining to FIG. 3.

In another illustrative example, a web browser may be running on userdevice 322. A user may request a webpage A from server 326 using the webbrowser. The server 326 may retrieve the requested webpage A and 1)determine phrases of interest in all or a portion of webpage A (asexplained in the discussion pertaining to FIG. 4 below) and 2) retrieveinformation pertaining to the phrases of interest from one or more datasources and/or a cache (as explained in the discussion pertaining toFIG. 10 below). In an alternate embodiment, the phrases of interest inall or a portion of webpage A may have been determined in advance priorto receiving the request from the web browser. Specifically, at thepoint in time when webpage A is stored on server 326, the phrases ofinterest may be determined and HTML tags identifying the phrases ofinterest may be stored within webpage A. In an embodiment, informationpertaining to the phrases of interest from one or more of the datasources and/or a cache may have been retrieved in advance prior toreceiving the request from the web browser. Specifically, at the pointin time when webpage A is stored on server 326, the search resultspertaining to the phrases of interest may be retrieved and stored withinwebpage A. The server 326 may send a response to the web browser on userdevice 322 including the phrases of interest and search resultspertaining to the phrases of interest. HTML tags may be used to identifythe phrases of interest and the search results in the response. The webbrowser on user device 322 may display the webpage A with the phrases ofinterest visually identified to the user (as explained in the discussionpertaining to FIG. 7 below). In an embodiment, the webpage A sent byserver 326 may additionally include Javascript instructions. TheJavascript may include instructions to display the search resultscorresponding to a visually identified phrase of interest on webpage Ain response to user input such as hovering a cursor over the phrase ofinterest. Therefore, in response to hovering a cursor over the phrase ofinterest, the search results corresponding to the phrase of interest maybe displayed in an interface such as a dialog box (as explained in thediscussion pertaining to FIG. 8 below). In an alternate embodiment, theJavascript may not be sent by the server 326 but a set of instructionsmay be generated/executed by the web browser's plug-in as explainedpreviously in the discussion pertaining to FIG. 3.

In an embodiment, when a user requests a webpage via a browser, therequest may be redirected by the browser to an intermediary server whichdoes not directly host the webpage. That intermediary server mayretrieve the webpage from a second server which hosts the webpage andmay process the webpage as described in the examples above. In anembodiment, the redirection may be performed by the web browser'splug-in. In an illustrative example, a user may request a web page via aweb browser. Instead of sending the request to a server, server A, whichdirectly hosts that web page, a plug-in in the web browser may redirectthe request to server B (e.g., server 326). Server B may then retrievethe web page from server A (and/or a cache), process the webpage, andsend a response to the web browser including the webpage, phrases ofinterest, and/or information pertaining to the phrases of interest asdescribed in the examples above.

In an embodiment, the communication between the user device and theservers may be asynchronous. In an embodiment, some steps may overlapothers and/or the steps may be performed in parallel. For example,returning to FIG. 3, the user device 302 may receive the originalwebpage from server 304 and may start displaying the original webpageand send the request to server 306 in parallel. When the modificationinformation from server 306 is received by user device 302, the userdevice 302 may apply the modifications to the displayed webpagedynamically.

In an embodiment, some or all of the functionality of the servers may beperformed by the user device to reduce the processing load placed onservers or to eliminate the need for one or more of the servers. Thismay improve actual and/or perceived performance for the user. In anillustrative example, a web browser may be running on user device 302.The web browser may include an installed plug-in to process webpages. Auser may request 312 a webpage A from server 304 using the web browser.The server 304 may return 314 the requested webpage A. Upon receivingthe response 314 from server 304, the web browser on user device 302 mayload the webpage and the plug-in may execute a set of instructions. Theinstructions may include information to process the content from webpageA to 1) select all or a portion of the content on webpage A and 2)identify the phrases of interest based on a reference (as explained inthe discussion pertaining to FIG. 4 below). The reference may be storedon the user device 302 and this processing may occur on the user device302. HTML tags may be generated by the plug-in to identify the phrasesof interest in webpage A. Therefore, in this embodiment, thefunctionality of determining phrases of interest may be moved fromserver 306 to user device 302. The web browser on user device 302 maydisplay the webpage A with the phrases of interest visually identifiedto the user (as explained in the discussion pertaining to FIG. 7 below).The web browser plug-in may execute additional instructions to send arequest to the server 306 for retrieving information from one or moredata sources pertaining to a visually identified phrase of interest onwebpage A in response to user input such as hovering a cursor over thephrase of interest. Therefore, in response to hovering a cursor over thephrase of interest, a request may be sent to server 306 with the phraseof interest. The server 306 may retrieve information pertaining to thephrase of interest indicated in the request from one or more datasources and/or a cache and may return the search results to the webbrowser on user device 302 (as explained in the discussion pertaining toFIG. 10 below). Upon receiving the response from server 306, the webbrowser plug-in may instruct the web browser to display the searchresults in an interface such as a dialog box (as explained in thediscussion pertaining to FIG. 8 below).

In another embodiment, the functions performed by servers 304, 306,and/or 326 may be performed by more than two servers to achieve parallelprocessing. In an embodiment, the functions performed by servers 304,306, and/or 326 may be run on virtualized hardware. In an embodiment,the functions performed by servers 304, 306, and/or 326 may be run onservices such as Google AppEngine and Heroku where the infrastructuremay be completely abstracted away.

FIG. 4 illustrates processing of a document according to an embodiment.A document 410 may be processed by a server (e.g., server 306) and/or auser device (e.g., user device 302). The document 410 may be any type ofelectronic document such as a webpage, an e-mail, a word-processingdocument, or a spreadsheet. Text from document 410 may be extracted. Inan embodiment, text may be extracted only from a selected portion ofdocument 410. The document may be partitioned into blocks and the textfrom particular block(s) of the document may be extracted. For example,a webpage document may include multiple sections such as a topnavigation section, a body content section, a top right advertisingsection, a bottom right advertising section, a comments section (e.g.,similar to the comments sections found on blogging websites), and afooter section. User and/or application settings may define thesection(s) of the webpage from which text should be extracted. Forinstance, user settings may define that the body section of the webpageincludes the relevant content and therefore, only the text from the bodysection may be extracted. A client (e.g., user device 302) and/or aserver (e.g., server 306) may identify the relevant content. From theextracted text, phrases (one or more words) of interest may beidentified based on information in reference 420 (e.g., a lexicaldatabase). Based on the identification of phrases, the document 410 maybe modified 430 (e.g., modification of the displayed webpage by userdevice 302).

In an embodiment, the reference 420 may include one or more phrasesdesignating concepts. The reference may be organized in a hierarchicalstructure. In an embodiment, each phrase in the reference may beassociated with an optimal phrase. If a portion of the extracted textmatches a phrase from the reference 420, that corresponding portion oftext may be identified as a phrase of interest. For example, thereference 420 may include a phrase 424 and phrase 424 may be “computerscience education.” Therefore, if a portion of the extracted text isalso “computer science education,” that portion may be identified as aphrase of interest.

In an embodiment, reference 420 may define associations/relationshipsbetween phrases. For instance, phrase 422 may be associated with phrases424, 426, and 428. Reference 420 may define any predetermined type ofassociation between phrases depending on the context in which reference420 is utilized. For example, reference 420 may define “broad,”“narrow,” “related,” “preferred,” and “used for” associations. Abroad/narrow association may connect a phrase such as “education” with anarrower phrase such as “computer science education” and vice-versa. Arelated association may connect a phrase such as “4G mobilecommunication” with a related phrase such as “3G mobile communication.”A preferred association may connect a phrase such as “2D display” with amore accurate or preferred phrase in a related art such as “twodimensional display.” A used for association may connect a phrase suchas “autonomous underwater vehicle” with a less accurate or lesspreferred phrase in a related art such as “AUV.” In an embodiment wherethe reference 420 defines phrases and associations related to sports,the association types may be player/team, coach/sport, player/sport,player/points per game, team/assists per game, etc. In an embodimentwhere the reference 420 defines phrases and associations related tomovies, the association types may be actress/award, actor/movie,director/screenwriter, sequel/prequel, etc. An illustrative example of areference 420 may be a thesaurus. The thesaurus may include a list ofphrases and for each phrase the thesaurus may list phrases which aresynonyms to the respective phrase.

A reference may be visualized as a graph with nodes and edges connectingthe nodes. Phrases may be represented by the nodes and the relationshipsbetween the phrases may be represented by the edges.

In an embodiment, in addition to identifying phrases of interest,optimal phrases associated with the phrases of interest may beidentified. Optimal phrases may be preferred words to describe theconcept and may yield better search results when used as search termsinstead of the respective phrases of interest. In this embodiment, theuser and/or application may pre-define the rules which determine anoptimal associated phrase. For example, an optimal associated phrase maybe defined as the phrase with a “preferred” association with the phraseof interest. Based on the identification of optimal phrases, thedocument 410 may be modified 430.

FIGS. 5 and 6 illustrate two references 500 and 600 respectivelyaccording to exemplary embodiments. In an embodiment, reference 500 maydefine associations between phrases using multiple association typessuch as “used for” associations, “related” associations, and “narrow”associations. In another embodiment, reference 600 may defineassociations between phrases as a hierarchy, where a broad phrase (e.g.,“education”) is higher on the hierarchy than a narrow phrase (e.g.,“continuing education”). The above examples are illustrative and thatany type of association between phrases may be defined in reference 420based on the context in which reference 420 is utilized.

In an illustrative example, a phrase defined in a reference may be“accidents.” The associated optimal phrase defined in the reference maybe “accidents.” An associated broad phrase defined in the reference maybe “accident prevention.” Associated related phrases defined in thereference may be “domestic safety,” “electric shock,” “emergencyservices,” “explosions,” “fires,” “hazardous areas,” “occupationalhealth,” “occupational safety,” “oil pollution,” “product safety,” and“risk analysis.” Associated narrow phrases defined the reference may be“aerospace accidents,” “electrical accidents,” “industrial accidents,”“marine accidents,” “railway accidents,” and “road accidents.”

In an illustrative example, a phrase defined in a reference may be“acoustomagnetic effects.” The associated optimal phrase defined in thereference may be “magnetoacoustic effects.”

In an illustrative example, a phrase defined in a reference may be“actuators.” The associated optimal phrase defined in the reference maybe “actuators.” An associated broad phrase defined in the reference maybe “control equipment.” Associated related phrases defined in thereference may be “control systems,” “servomechanisms,” “servosystems,”and “shape memory alloys.” Associated narrow phrases defined thereference may be “electrostatic actuators,” “hydraulic actuators,”“intelligent actuators,” and “microactuators.”

The reference may be organized and/or stored in any format including oneor more tables in a database and/or memory, one or more files, one ormore user defined objects, etc. The reference 420 may be normalized ordenormalized as necessary to optimize system performance. In anembodiment, some or all of the information in reference 420 may becached prior to processing document 410 to improve the searchperformance. In an embodiment, the phrases of interest identified in adocument and an identifier identifying the document (e.g., the uniformresource locator (URL) of the document) may be stored/cached. For futureprocessing of the same document, the cache/stored phrases of interestmay be returned. In an embodiment, the cached/stored phrases may expireafter a predetermined amount of time to avoid returning stale data.

Returning to FIG. 4, in an embodiment, if overlapping portions of theextracted text match more than one phrase in the reference 420, thedefined associations may be utilized to resolve ambiguity. For example,the extracted text may be: “A computer science education is now offeredat the University.” Phrase 422 may be “education” and phrase 424 may be“computer science education.” Therefore there is ambiguity as to whether“computer science education” should be identified as a phrase ofinterest in the extracted text or whether “education” should beidentified as a phrase of interest in the extracted text. Theassociation 423 between phrase 422 and 424 may indicate a broad/narrowrelationship and an application/user setting may indicate that phrasesof interest should be narrow rather than broad. Therefore the narrowerphrase, “computer science education” may be identified as the phrase ofinterest instead of “education.”

In an embodiment, after identifying the phrases of interest, document410 may be modified such that the visual properties associated with thephrases of interest changed to distinguish them from the rest of thecontent in document 410. FIG. 7 illustrates a modified document 700according to an embodiment. As shown, the phrases of interest 702, 704,706, and 708 are underlined to distinguish them from the rest of thetext. Although the phrases of interest are underlined in this example,any visual property or combination of visual properties associated withthe phrases of interest may be modified. The visual properties mayinclude font type, font size, font weight (e.g., “bold”), font style(e.g., italicization), underlining, shading, highlighting, shadowing,three-dimensional effects, etc. In an embodiment, the phrases ofinterest may be displayed on a pre-determined portion of the document410. For example, a module may be built and displayed in the right orleft portion of the page (similar to a recommendations module), and themodule may present the phrases of interest.

In an embodiment, in addition to changing the visual properties of thephrases of interest in document 410, processes/functions triggered byuser input may be associated with the phrases. FIG. 8 illustrates amodified document 800 according to an embodiment. In an embodiment, userinput such as hovering a cursor over the phrase 802, “computer scienceeducation” may trigger the display of an interface 810 such as a dialogbox. Dialog box 810 may present information associated with the phraseof interest 802, “computer science education,” such as results 816 fromsearches conducted in one or more data sources 814 with the search term,“computer science education.” A data source may be a logically groupeddata set which may be sourced from one or more databases, files, and/orindices which may be stored on one or more disks or may reside inmemory. For example, data sources 814 may include data sources storingdata pertaining to conferences, societies, subscriptions, research,education, careers, news, etc.

In an alternate embodiment, dialog box 810 may present informationassociated with an optimal phrase associated with “computer scienceeducation” as defined by a reference (e.g., reference 420). In thisembodiment, the user and/or application may pre-define the rules whichdetermine an optimal associated phrase. In an exemplary embodiment, anoptimal associated phrase may be defined as the phrase with a“preferred” association with “computer science education.” For example,the phrase “computer engineering education” may be the preferred phraseto “computer science education.” Therefore, dialog box 810 may presentinformation associated with “computer engineering education” (instead of“computer science education”) such as results 816 from searchesconducted in one or more data sources 814 with the search term,“computer engineering education.” In an embodiment, a phrase and itsassociated optimal phrase may be the same. In an embodiment, if anoptimal associated phrase is not found in the reference, dialog box 810may present information associated with the phrase of interest 802(“computer science education”) by default.

In an embodiment, dialog box 810 may present information associated withthe phrase 802 (or the optimal associated phrase) and additionalparameters. These additional parameters may include information in thedocument 800, web browsing history, geographical location information,web transaction history (e.g., purchases made via the Internet), anduser declared information such as user preferences. For example, theuser may be located in New York while viewing dialog box 810. Therefore,dialog box 810 may present information associated with “computer scienceeducation” and “New York” such as results 816 from searches conducted inone or more data sources 814 with the search term, “computer scienceeducation” and “New York.”

In an embodiment, the user may customize the information displayed onthe modified document 800 and the interface 810 through configurationsettings. The user may modify configuration settings to selectivelyallow or block topics and/or phrases to control the phrases of interestidentified on document 800. For example, the user may modify a settingto block identification of the phrase “computer science education.” As aresult, the phrase 802 may no longer be underlined (or otherwisevisually distinguished) on document 800. Similarly, the user may modifya setting to only allow identification of the phrases: “computerlibrary” and “hardware.” Consequently, only the phrases “computerlibrary” and “hardware” may be underlined on document 800. In anotherexample, the user may modify a setting to block identification of thetopic, “computers.” “Computer science education,” “computer library,”“hardware,” and “software” may belong to the topic, “computers.”Therefore, none of the phrases in document 800 may be underlined. Theuser may also specify broader topics to avoid. For example, if the userblocks the broad topic, “aerospace,” this block will propagateautomatically to the children/grandchildren/etc., of aerospace.

In an embodiment, the user may modify configuration settings to specifythe data sources to be used for displaying the information in interface810. For example, the user may modify a setting to utilize only datasource A. Therefore, interface 810 may only display a link to datasource A and results from searches conducted in data source A. Inanother example, the user may specify additional data sources such asGoogle's search engine or Wikipedia.

In an embodiment, the user may modify configuration settings tocustomize the visual properties which indicate phrases of interest. Forexample, the user may modify the settings so that the phrases ofinterest are highlighted and underlined. In an embodiment, the user maymodify the settings to selectively specify visual properties forparticular phrases of interest and/or particular topics. For example,the user may modify the settings so that all phrases of interestassociated with a particular topic are underlined in red.

In an embodiment, the user may modify configuration settings to specifythe references to be used when determining the phrases to be identifiedin document 800. For example, a user accessing a document to view sportsrelated news may modify the configuration settings to utilize areference with sports phrases and associations.

The user may modify configuration settings through the applicationdisplaying/processing document 800, a plug-in installed as an add-on tothe application, and/or directly modifying a configuration file throughan interface. For example, if the user is viewing document 800 through aweb browser such as Google's Chrome™ browser, the user may change theconfiguration settings of a Chrome™ extension which controls the visualidentification of phrases of interest.

In an embodiment, the above discussed settings may be configurable onthe server side by, for example, a webmaster.

Interface 810 is shown as a dialog box for illustration purposes.Interface 810 may be a pop-up window, a browser window, a toolbar, a tab(such as a browser tab), and/or any viewable portion of the document800.

In an embodiment, user input such as clicking on any one of the links814 to data sources—data source X, data source Y, or data source Z—maydisplay the results from the respective data source in dialog box 810.In an embodiment, additional results may be displayed to the user via adata source search interface (such as a new webpage) in response to userinput such as double-clicking on one of the data sources 814. In analternate embodiment, the additional search results from data source Xmay be displayed to the user via a data source search interface inresponse to user input such as clicking on link 818 which may include adescription such as “view more search results from data source X.”

FIG. 9 illustrates an exemplary data source search interface 900according to an embodiment. The data source search interface 900 may bedisplayed to the user in response to user input associated with a datasource via a prior interface (e.g., double clicking on a link 814 todata source shown in dialog box 810). The data source search interface900 may automatically retrieve search results using a phrase 902associated with the prior interface as a search term (e.g., phrase 802).The retrieved search results may be automatically displayed 904. Thedata source search interface 900 may display filtering and sortingfunctions 906 to narrow and/or organize the search results 904 asneeded. In an embodiment, other search parameters in addition to thephrase 902 may be automatically utilized to retrieve and/or filter thesearch results. These parameters may include information from apreviously accessed document, web browsing history, geographicallocation information, web transaction history (e.g., purchases made viathe Internet), and user declared information such as user preferences.

FIG. 10 shows an exemplary architecture 1000 in an embodiment of theinvention. User device 1002 may send a request to a server 1004 forinformation pertaining to a phrase. In response, the server 1004 mayretrieve the requested information from one or more caches 1006 and/orone or more data sources 1008, 1010, and 1012. The server may format theretrieved information if necessary and send the information to the userdevice 1002. The user device 1002 may then display informationpertaining to the phrase (e.g., dialog box 810).

In an embodiment, in response to receiving a request from user device1002, server 1004 may conduct a search using the phrase from the requestas a search term in the cache 1006 and/or the data sources 1008, 1010,and 1012. In an embodiment, the server 1004 may use other searchparameters in addition to the phrase to tailor the search results. Theseparameters may include information from a user accessed document such asa web page, web browsing history, geographical location information, webtransaction history (e.g., purchases made via the Internet), and userdeclared information such as user preferences. In an embodiment, theuser device 1002 may send one or more of the additional searchparameters along with the request to server 1004.

In an embodiment, the results from searches conducted in data sources1008, 1010, and 1012, may be pre-cached in cache 1006 prior to receivingthe request from user device 1002. Server 1004 may read phrases from oneor more references (e.g., reference 420), conduct searches for eachphrase in data sources 1008, 1010, and 1012, and cache these results incache 1006. In an embodiment, the searches may be conducted for allphrases in the references and the results may be stored in cache 1006.In another embodiment, the searches may be conducted for a subsetphrases in the references and the results may be stored in cache 1006.For example, search results may be pre-cached for the most frequentlysearched phrases. In an embodiment, for each pre-cached searchconducted, a predetermined number of results may be saved in cache 1006.In an embodiment, the data in cache 1006 may be refreshed atpredetermined time intervals.

In an alternate embodiment, the server 1004 may cache the search resultsfrom data sources 1008, 1010, and 1012 when the server 1004 receivessearch requests. The server 1004 may first check if the requestedresults are cached in cache 1006. If so, the server 1004 may return thecached results. If not, the server 1004 may retrieve the results fromthe data sources, cache the results for future queries, and send therequested information to the user device 1002.

In an embodiment, the server 1004 may save information sent from userdevice 1002 to a log 1014. The logged information may include user inputstatistics, user identifiers (e.g., e-mail address, user name, etc.),advertising identifiers, user device identifiers, applicationidentifiers for applications running on user device 1002, informationfrom previously accessed documents such as webpages, web browsinghistory, geographical location information, web transaction history(e.g., purchases made via the Internet), and user declared informationsuch as user preferences. User input statistics may include informationsuch as phrases on which the user hovered the cursor, the number oftimes the cursor hovered on a highlighted phrase, the data sources whichthe user clicked on, the number of times the user clicked on a datasource, the actions taken by the user when searching via a data sourcesearch interface (e.g., sorting, filtering, parameters used forfiltering), the sequence of the actions taken by the user, etc. The log1014 may include one or more databases and/or one or more files. Thelogged information may be used for purposes such as data mining,providing the user with targeted advertising and/or tailored applicationfunctionality.

In an embodiment, some or all of the functionality of server 1004 may beperformed by the user device 1002 to reduce the processing load placedon server 1004 or to eliminate the need for server 306 completely. Inanother embodiment, the functions performed by server 1004 may beperformed two or more servers to achieve parallel processing.

FIG. 11 illustrates a modified document 1100 indicating phrases ofinterest and processes associated with the phrases according to anembodiment. In this embodiment, user input such as right-clicking acursor over the phrase of interest 1102, “computer library,” may triggerthe display of an interface 1110 such as a right-click menu. Right-clickmenu 1110 may present various functions associated with the phrase ofinterest 1102, “computer library,” including a function to replace thephrase of interest with a more optimal phrase as defined by a reference(e.g., reference 420). The user and/or application may pre-define therules which determine an optimal associated phrase. In an exemplaryembodiment, an optimal associated phrase may be defined as the phrasewith a “preferred” association with “computer library.” For example, thephrase “computer science library” may be the preferred phrase to“computer library.” Therefore, activating the “replace with optimalphrase” function via right-click menu 1110 may replace the phrase“computer library” with “computer science library.” In an embodiment,the right-click menu 1110 may include a global replace function,“replace all with optimal phrase,” which when activated may replace alloccurrences of phrase “computer library” with “computer sciencelibrary.” In an embodiment, if an optimal associated phrase is not foundin the reference, right-click menu 810 may not present the “replace withoptimal phrase” or “replace all with optimal phrase” options. Thefunction descriptions, “replace with optimal phrase” and “replace allwith optimal phrase,” may be worded differently in other embodiments aslong as the description conveys the underlying functionality to theuser.

In an embodiment, the data required to display the relevant functionswithin right-click menu 1110 may be included in metadata associated withphrases of interest sent by a server (e.g., server 306). An applicationdisplaying/processing document 1100 and/or a plug-in installed as anadd-on to the application may enable the display of the right-click menuwith the relevant functions based on the metadata. For example, if theuser is editing document 1100 through a word-processing application, theword-processing application and/or a plug-in installed as an add-on tothe word-processing application may enable the display of theright-click menu with the relevant functions based on the metadata.

Interface 1110 is shown as a right-click menu for illustration purposes.Interface 1110 may be a toolbar, a dialog box, and/or any viewableportion of the document 1100.

In an embodiment, the functionality pertaining to the description ofFIG. 11 may augment the functionality of a word processingsystem/software and/or a document creation system/software.

User input in the illustrations above may be implemented in many waysincluding implementation through a mouse, keyboard, trackball, joystick,sensor on a touch screen of a device displaying the document, etc. In anembodiment, user input may be implemented through a motion sensor. Forexample, shaking and/or tilting a PC tablet with a motion sensor in aparticular manner may translate into different forms of user input.

Although many of the above examples reference webpage documents forillustration purposes, the above principles apply to any type ofdocument, media, and/or file including e-mails, word-processingdocuments, spreadsheets, PDF documents, webpages, text messages, andvideo.

Although many of the examples above are directed to document processingfor illustrative purposes, the principles discussed are applicable invarious subject areas. For example, in an embodiment, the aboveprinciples may be applied to interactive movies. FIG. 13 shows anexemplary architecture 1300 in an embodiment of the present invention.In an embodiment, an in-line device 1304 between a video source 1302 anda video presentation system 1306 may accept an incoming video stream,apply some heuristics to identify what is being displayed on the videopresentation system 1306, and then display related information to whatis on the screen of the video presentation system 1306. For example, amovie may be streamed via a set top box 1304. The set top box 1304 mayidentify actors as they appear in the movie (e.g., phrases of interest),may allow the viewer to hover over the moving image and retrieveinformation about that actor (e.g., information retrieved from datasources based on user input associated with a phrase of interest), andmay present the retrieved information about the actor on the displayscreen of the video presentation system 1306.

FIG. 14 illustrates a graphical user interface (GUI) 1400 displaying avideo according to an embodiment. The GUI 1400 may be attached to avideo presentation device and/or an in-line device. In an illustrativeexample, the user may be watching a movie via the GUI 1400. The moviemay display a scene with an actor 1402 such as John Travolta. A smallindicator 1404 shown on the GUI 1400 may indicate to the user thatadditional information is available regarding what is being displayed(e.g., the actor 1402). Based on user input, such as hovering over theindicator 1404, to the video presentation device (or in directcommunication with the in-line device) display of additional information1406 associated with the actor 1402 may be triggered.

In an embodiment, a producer may be an entity that produces content. Adistributor may be an entity that provides a distribution or deliverymethod for content. A consumer may be a user of content. Content may beinformation produced by producer, delivered by distributor, and consumedby consumer, in the various forms including but not limited to textdocuments, messages, images, videos, or any combination thereof.Relevant content may be a subportion of the content identified asrelevant depending on the context. Existing or new technology may beused to perform this identification. Concept may be a specifically anduniquely identified piece of information. A concept may be a word orphrase of text, or may be a reference image or video with adequateinformation technology that makes it uniquely identifiable by existingor new technology. A concept graph may be a collection of concepts alongwith zero or more specified relationships among those concepts. A searchspace may be a public or proprietary corpus of information that can besearched. Examples include the world-wide web, a company's proprietarydatabase, or images within the *.edu domain of the Internet. Searchresults may be a list resulting from the performance of a search for aconcept in a search space. The list is active in that it not onlyindicates the results of the search, but each entry in the list mayprovide instant access to expanded content indicated by that entry.

FIG. 15 illustrates a process 1500 according to an embodiment. Theprocess 1500 may 1) use existing or new technology to identify relevantcontent in target content 1510, 2) match the relevant content against aconcept graph resulting in a list of concepts occurring within therelevant content 1520, 3) augment the relevant content with indicatorsthat specify the identified concepts and/or related concepts accordingto the relationships in the concept graph 1530, 4) obtain search resultsfrom searching for those concepts in various specified search spaces1540, and 4) enable the consumer to access the content indicated by thesearch results 1550.

In an illustrative example, a user device (e.g., 322) may process targetcontent (e.g., a webpage) via a web browser. The web browser may includea plug-in to identify relevant content of the web page which needs to beprocessed 1510. The user device may send the relevant content to aserver (e.g., 326). The server may match the relevant content against aconcept graph (e.g., reference) to determine a list of concepts (e.g.,phrases of interest) occurring within the relevant content 1520. Theserver may augment the relevant content with indicators that specify theidentified concepts (e.g., phrases of interest) and/or related concepts(e.g., optimal phrases) according to the relationships in the conceptgraph 1530. The server may obtain search results for those identifiedconcepts in various specified search spaces (e.g., data sources) 1540.The server may send a response to the user device with the identifiedconcepts and search results. The consumer may then access the contentindicated in the search results (e.g., search results 816) via the webbrowser 1550.

In an illustrative example, a device (e.g., in-line device 1304) mayprocess target content (e.g., a video stream). The in-line device mayidentify relevant content (e.g., a particular DVD chapter) of the videostream which needs to be processed 1510. The device may match therelevant content against a concept graph (e.g., reference with movieinformation) to determine a list of concepts (e.g., actors of interest)occurring within the relevant content 1520. The device may augment therelevant content with indicators that specify the identified concepts(e.g., indicator 1404) and/or related concepts according to therelationships in the concept graph 1530. The device may obtain searchresults for those identified concepts in various specified search spaces(e.g., databases including movie information) 1540. The consumer maythen access the content indicated in the search results (e.g.,associated information 1406) 1550.

The above process may be applied by any combination of the producers,distributors, or consumers of the content. The selection of contenttargets, concept graphs, and search spaces can be decided and configuredby producers, distributors, or consumers depending upon the embodimentof the invention. The above process may be implemented by the use of anycombination of hardware or software.

FIG. 12 shows an exemplary architecture 1200 in an embodiment of thepresent invention. The user system 1210 may exemplify the user devicesillustrated in FIGS. 3 and 10. The user system 1210 may run anapplication to view, create, or modify documents. The user system 1210may be coupled to a display device 1215, existing internal systems 1230through a network 1220 and to external systems 1250 through the network1220 and firewall system 1240. The user system 1210 may include adesktop computer, laptop computer, tablet PC, client computer, mobilephone, central computer in a vehicle, any device with a touch screen,computers worn by a person such as Google Glass, and any other computer.The display device 1215 may include a computer monitor, a touch screen,a tablet PC screen, a mobile phone screen, and any other displays. Theexisting internal systems 1230 may include one or more servers (e.g.,servers shown in FIGS. 3 and 10) and may provide data/functionalityassociated with phrases. The external systems 1250 may include one ormore servers (e.g., servers shown in FIGS. 3 and 10) and may providedata/functionality associated with phrases. The user system 1210 mayinteract with the external systems to obtain information through afirewall system 1240 separating the internal systems from the externalsystems.

While internal systems 1230 and external systems 1250 are included inFIG. 12, in some embodiments, one or both of these systems may not berequired. In an embodiment, the functionality provided by the internalsystems 1230 and external systems 1250 may be provided by the usersystem 1210.

Each of the systems in FIG. 12 may include a processing device 1212,memory 1213, a database 1211, and an input/output interface 1214, all ofwhich may be interconnected via a system bus. In various embodiments,each of the systems 1210, 1230, 1240, and 1250 may have an architecturewith modular hardware and/or software systems that include additionaland/or different systems communicating through one or more networks. Themodular design may enable one to add, exchange, and upgrade systems,including using systems from different vendors in some embodiments.Because of the highly customized nature of these systems, differentembodiments may have different types, quantities, and configurations ofsystems depending on the environment and organizational demands.

In an embodiment, memory 1213 may include different components forretrieving, presenting, changing, and saving data. Memory 1213 mayinclude a variety of memory devices, for example, Dynamic Random AccessMemory (DRAM), Static RAM (SRAM), flash memory, cache memory, and othermemory devices. Additionally, for example, memory 1213 and processingdevice(s) 1212 may be distributed across several different computersthat collectively comprise a system.

Database 1211 may include any type of data storage adapted for searchingand retrieval.

Processing device 1212 may perform computation and control functions ofa system and comprises a suitable central processing unit (CPU).Processing device 1212 may comprise a single integrated circuit, such asa microprocessing device, or may comprise any suitable number ofintegrated circuit devices and/or circuit boards working in cooperationto accomplish the functions of a processing device. Processing device1212 may execute computer programs, such as object-oriented computerprograms, within memory 1213.

The foregoing description has been presented for purposes ofillustration and description. It is not exhaustive and does not limitembodiments of the invention to the precise forms disclosed.Modifications and variations are possible in light of the aboveteachings or may be acquired from the practicing embodiments consistentwith the invention. For example, some of the described embodiments mayinclude software and hardware, but some systems and methods consistentwith the present invention may be implemented in software or hardwarealone. Additionally, although aspects of the present invention aredescribed as being stored in memory, this may include other computerreadable media, such as secondary storage devices, for example, solidstate drives, or DVD ROM; the Internet or other propagation medium; orother forms of RAM or ROM.

We claim:
 1. A computer-implemented method comprising: identifyingrelevant content from a target content; matching the relevant contentagainst a concept graph, wherein the concept graph includes a pluralityof concepts and associations between the plurality of concepts;determining concepts based on the matching; augmenting the relevantcontent with indicators to indicate the determined concepts; searchingfor the determined concepts in at least one search space to obtainsearch results; and granting access to information indicated by thesearch results.
 2. The method of claim 1, wherein the target content isa webpage and the determined concepts are phrases of interest.
 3. Themethod of claim 1, wherein the target content is a video stream and thedetermined concepts are related to videos.
 4. A computer-implementedmethod comprising: sending a first request, wherein the first requestincludes at least a text segment of a document; receiving a firstresponse, wherein the first response indicates phrases of interest inthe at least a text segment based on a reference, wherein the referenceincludes a plurality of phrases and associations between the pluralityof phrases; displaying the document with visual properties identifyingthe phrases of interest, wherein in response to user input correspondingto a phrase of interest, a second request is sent to retrieveinformation associated with the phrase of interest from a data source.5. A computer-implemented method comprising: sending a request, whereinthe request includes at least a text segment of a document; receiving aresponse, wherein the response indicates phrases of interest in the atleast a text segment based on a reference, wherein the referenceincludes a plurality of phrases and associations between the pluralityof phrases; displaying the document with visual properties identifyingthe phrases of interest; in response to a first user input correspondingto a phrase of interest, displaying an interface with an optimal phraseto replace the phrase of interest; and in response to a second userinput, replacing the phrase of interest with the optimal phrase.
 6. Anapparatus comprising: a server to: receive a request from a user device,wherein the request includes at least a text segment of a document,determine phrases of interest in the at least a text segment based on areference, wherein the reference includes a plurality of phrases andassociations between the plurality of phrases, indicate the phrases ofinterest in a response to the user device, and transmit the response tothe user device, wherein the response enables the user device to displaythe document, visually identify the phrases of interest indicated in theresponse within the document, and in response to user inputcorresponding to a phrase of interest within the document, send arequest to retrieve information associated with the phrase of interestfrom a data source.
 7. The apparatus of claim 6, wherein the server isfurther configured to: include an optimal phrase associated the phraseof interest in the response, wherein the request to retrieve informationassociated with the phrase of interest from the data source includes theoptimal phrase.
 8. The apparatus of claim 6, further comprising: a cacheto cache an identifier of the document and the determined phrases ofinterest.
 9. An apparatus comprising: a server to: receive a requestfrom a user device, wherein the request is generated in response to userinput associated with an indicated phrase of interest within a displayeddocument, the phrase of interest determined based a reference, thereference including a plurality of phrases and associations between theplurality of phrases, and the request includes the phrase of interest,retrieve search results associated with the phrase of interest, andtransmit a response to the user device with the search results, whereinthe response enables the user device to display the search results. 10.The apparatus of claim 9, wherein the request further includes anoptimal phrase associated with the phrase of interest and the optimalphrase is used as a search term to retrieve the search results.
 11. Theapparatus of claim 9, wherein the request includes additionalinformation to filter the search results, the additional informationincluding at least one of 1) user web browsing history, 2) geographicallocation information, 3) user web transaction history, 4) user declaredinformation, and 5) information from the document.
 12. The apparatus ofclaim 9, further comprising: a cache to cache search results, wherein asearch using the phrase of interest is conducted prior to receiving therequest from the user device and respective search results are saved inthe cache, and the server retrieves the search results from the cache.13. The apparatus of claim 9, further comprising: a cache to cache thesearch results, wherein the cached search results are retrieved forfuture searches associated with the phrase of interest.
 14. Theapparatus of claim 9, wherein the request includes loggable data, thedata including at least one of 1) user input statistics, 2) useridentifiers, 3) advertising identifiers, 4) user device identifiers, 5)application identifiers, 6) user web browsing history, 7) geographicallocation information, 8) user web transaction history, 9) user declaredinformation, and 10) information from the document, and the apparatusfurther comprises: a log to store the data.
 15. An apparatus comprising:a server to: receive a request from a user device for a document;retrieve the document; identify at least a text segment of the document;determine phrases of interest in the at least a text segment based on areference, wherein the reference includes a plurality of phrases andassociations between the plurality of phrases; indicate the phrases ofinterest in a response to the user device; transmit the response to theuser device, wherein the response enables the user device to display thedocument, visually identify the phrases of interest indicated in theresponse within the document, and in response to user inputcorresponding to a phrase of interest within the document, displaysearch results corresponding to the phrase of interest.
 16. Theapparatus of claim 15, wherein the server is further configured to:retrieve respective search results associated with each phrase ofinterest from a cache or at least one data source; and include therespective search results in the response.